const BaseJoi = require('joi');
const Extension = require("joi-date-extensions");
const Joi = BaseJoi.extend(Extension);

module.exports = {
    adPmData: Joi.object().keys({
        p_name: Joi.string().max(50).required(),
        p_rank: Joi.number().min(0).max(2).required(),
        p_status: Joi.number().min(0).max(5).required(),
        p_manager: Joi.string().max(20).required(),
        p_demandside: Joi.string().max(20).required(),
        p_fuplus_status: Joi.number().min(0).max(1).required(),
        p_startup_time: Joi.date().format('YYYY-MM-DD').required(),
        p_demand_time: Joi.date().format('YYYY-MM-DD').optional().allow(""),
        p_design_time: Joi.date().format('YYYY-MM-DD').optional().allow(""),
        p_codecomplete_time: Joi.date().format('YYYY-MM-DD').optional().allow(""),
        p_archive_time: Joi.date().format('YYYY-MM-DD').optional().allow(""),
        p_online_time: Joi.date().format('YYYY-MM-DD').optional().allow(""),
        p_news: Joi.string().max(128).optional().allow(""),
        p_desc: Joi.string().max(255).optional().allow(""),
        p_productmanager: Joi.string().max(20).optional().allow(""),
        p_designer: Joi.string().max(20).optional().allow(""),
        p_technical: Joi.string().max(20).optional().allow(""),
        p_test: Joi.string().max(20).optional().allow(""),
        p_coder: Joi.string().max(20).optional().allow("")
    }),
    getPmList: Joi.object().keys({
        p_status: Joi.number().integer().min(0).max(1).required(),
        page: Joi.number().integer().min(1).required(),
        size: Joi.number().integer().positive()
    }),
    updatePmData: Joi.object().keys({
        id: Joi.number().integer().positive().required(),
        p_fuplus_status: Joi.number().min(0).max(1).integer().required(),
        p_name: Joi.string().max(50).optional().allow(""),
        p_rank: Joi.number().min(0).max(2).integer().optional().allow(""),
        p_status: Joi.number().min(0).max(4).integer().optional().allow(""),
        p_manager: Joi.string().max(20).optional().allow(""),
        p_demandside: Joi.string().max(20).optional().allow(""),
        p_startup_time: Joi.date().format('YYYY-MM-DD').optional().allow(""),
        p_demand_time: Joi.date().format('YYYY-MM-DD').optional().allow(""),
        p_design_time: Joi.date().format('YYYY-MM-DD').optional().allow(""),
        p_codecomplete_time: Joi.date().format('YYYY-MM-DD').optional().allow(""),
        p_archive_time: Joi.date().format('YYYY-MM-DD').optional().allow(""),
        p_online_time: Joi.date().format('YYYY-MM-DD').optional().allow(""),
        p_news: Joi.string().max(128).optional().allow(""),
        p_desc: Joi.string().max(255).optional().allow(""),
        p_productmanager: Joi.string().max(20).optional().allow(""),
        p_designer: Joi.string().max(20).optional().allow(""),
        p_technical: Joi.string().max(20).optional().allow(""),
        p_test: Joi.string().max(20).optional().allow(""),
        p_coder: Joi.string().max(20).optional().allow("")
    })
}